#pragma once

#include <chrono>
#include <string>
#include <cstdio>
#include <cstdarg>
#include <unordered_map>

#define LOG_LEVEL_TRACE 0
#define LOG_LEVEL_DEBUG 1
#define LOG_LEVEL_INFO  2
#define LOG_LEVEL_WARN  3
#define LOG_LEVEL_ERROR 4
#define LOG_LEVEL_OFF   5

namespace qklog {

enum class level : int
{
    trace = LOG_LEVEL_TRACE,
    debug = LOG_LEVEL_DEBUG,
    info  = LOG_LEVEL_INFO,
    warn  = LOG_LEVEL_WARN,
    error = LOG_LEVEL_ERROR,
    off   = LOG_LEVEL_OFF,
    num_levels
};

using log_clock = std::chrono::system_clock;

};



